import gradio as gr


def chat_once(xinput):
    """输入文本，返回“收到：……”和一个空字符串来清空输入文本框。"""
    return '收到：' + xinput, ''


# 构建Gradio界面
with gr.Blocks(analytics_enabled=False) as demo:

    # 输入文本框
    cmp_input = gr.Textbox(interactive=True, label='输入')

    # 输入按钮
    cmp_input_button = gr.Button('发送', )

    # 输出文本框
    cmp_output = gr.Textbox(interactive=False, label='输出')

    # 输入按钮点击事件
    cmp_input_button.click(chat_once, [cmp_input, ], [
        cmp_output,
        cmp_input,
    ], queue=False)

# 使用queue（目前这个例子太简单，没有用到queue，后面会用到。）
demo.queue(
    concurrency_count=10,
    status_update_rate='auto',
    # status_update_rate=0.02,
)

# 启动Gradio
# demo.launch(server_name='0.0.0.0', server_port=7776, share=True, debug=True)  # 带内网穿透
demo.launch(server_name='0.0.0.0', server_port=7776, debug=True)
